package com.zbcbms.service;

import com.zbcbms.entity.dto.AddBookBorrowDto;
import com.zbcbms.entity.chart.BookBorrowChart;
import com.zbcbms.entity.tableData.BookBorrowTableData;
import javafx.collections.ObservableList;

import java.util.List;

/**
 * @author fengq
 */
public interface BookBorrowService extends IService<AddBookBorrowDto>{
    /**
     * getBorrowRecordByUser 根据用户编号查询借阅记录
     * @param userNumber
     * @return
     */
    ObservableList<BookBorrowTableData> getBorrowRecordByUser(String userNumber);

    /**
     * getAllBookBorrow 查询所有的借阅记录
     * @return
     */
    ObservableList<BookBorrowTableData> getAllBookBorrowTable();

    /**
     * getBorrowCountByTime 根据时间查询借阅数量
     * @param date
     * @return
     */
    long getBorrowCountByTime(String date);

    /**
     * getReturnCountByTime 获取该时间的归还书数量
     * @param date
     * @return
     */
    long getReturnCountByTime(String date);

    /**
     * getBorrowByBookName
     * @return
     */
    List<BookBorrowChart> getBorrowByBookName();

    /**
     * getDeletedBorrow
     * @return
     */
    ObservableList<BookBorrowTableData> getDeletedBorrow();

    /**
     * getBookBorrowVoByKeyword
     * @param keyword
     * @return
     */
    ObservableList<BookBorrowTableData> getBookBorrowVoByKeyword(String keyword);

    /**
     * getBookBorrowVoByKeywordAndUserNumber
     * @param keyword
     * @param userNumber
     * @return
     */
    ObservableList<BookBorrowTableData> getBookBorrowVoByKeywordAndUserNumber(String keyword,String userNumber);

    /**
     * getBookBorrowByUserAndDay
     * @param userNumber
     * @param days
     * @return
     */
    ObservableList<BookBorrowTableData> getBookBorrowByUserAndDay(String userNumber,String days);
}
